#ifndef ELEMENTXML__H
#define ELEMENTXML__H

#include "config.h"
#include "AttributeXML.h"
#include "NodeXML.h"

using namespace std;

class ElementXML:public NodeXML{

public:
ElementXML();
ElementXML(vector<NodeXML *> * _children, vector<AttributeXML *> * _attributes, char* _ns, char* _name/*, ElementXML * daddy*/);
ElementXML(vector<NodeXML *> * _children, vector<AttributeXML *> * _attributes, string _ns, string _name/*, ElementXML * daddy*/);
virtual ~ElementXML(){};

bool setAttributes(vector<AttributeXML * > * _attributes);
bool setChildren(vector<NodeXML * > * _children);

bool addAttribute(AttributeXML * _at);
bool addChild(NodeXML * _child);
vector<AttributeXML *> * getAttributes() const;
vector<NodeXML *> * getChildren() const;
//bool setDaddy(ElementXML * whosYourDaddy);
//ElementXML * getDaddy();

string  getName() const;
bool setName(string  _name);
string getNameSpace() const;
bool setNameSpace(string _ns);
string toString() const;
string getRegExpChildren() const;
string getRegExp() const;

protected:
vector<NodeXML *> * children;
vector<AttributeXML *> * attributes;
string name;
string ns;
//ElementXML * daddy;

};

#endif
